約 4,017,437 件
https://w.atwiki.jp/abwiki/pages/231.html
今回はMCIコマンドを使って、WAVE、MIDI、MP3等の音楽ファイルを再生することができる簡易プレーヤーを作ってみます。 MCIコマンドって何? "Multimedia Control Interface" のことです。ようは、音楽ファイルをオープンしたり、再生、停止したりする、サウンド関連のコマンドのことです。 mciSendCommand関数を使用すれば、MCI_OPEN、MCI_PLAY、MCI_STOPなどのMCIコマンドを送ることができます。 mciSendCommand ( _ mciId As Long, _ 'MCIデバイスのID uMsg As Long, _ 'コマンド(MCI_OPEN、MCI_PLAY、MCI_STOPなど…) dwParam1 As Long, _ 'パラメータ1(コマンドにより異なります) ByRef dwParam2 As Any _ 'パラメータ2(コマンドにより異なります) ) As Long 作り方 ノーマルウィンドウベースのプロジェクトを新規作成します(プロジェクト名を "SoundTest" とします)。プロジェクト オプションで、「マルチメディアAPIを使用する」にチェックを入れておいて下さい。 MainWndはこのようなコントロール配置にしておきましょう。 コーディング MainWnd.sbpに以下のようなコードを入力していきます。 ' ----------------------------------------------------------------------------' イベント プロシージャ' ----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' メモ - 以下の領域を、変数、構造体、定数、関数を宣言するための、' グローバル領域として利用することができます。' ----------------------------------ここから----------------------------------Dim mop As MCI_OPEN_PARMS' ----------------------------------ここまで---------------------------------- ↑MainWnd.sbpの先頭部分には、MCIデバイスのオープン情報のための構造体を用意します。 Sub MainWnd_Destroy() SoundTest_DestroyObjects() PostQuitMessage(0)End Sub ↑Destroyイベントに変更はありません。 Sub MainWnd_OpenButton_Click() Dim ofn As OPENFILENAME Dim buffer[MAX_PATH-1] As Byte 'ファイル名を取得 ofn.lStructSize=76 ofn.hwndOwner=hMainWnd ofn.lpstrFilter=Ex"音楽 ファイル(*.wav;*.mid;*.mp3)\0*.wav;*.mid;*.mp3\0すべてのファイル(*.*)\0*\0\0" ofn.nFilterIndex=1 ofn.nMaxFile=MAX_PATH ofn.lpstrFile=buffer GetOpenFileName(ofn) 'テキストボックスにパスを設定する SetWindowText(GetDlgItem(hMainWnd,Static_Path),ofn.lpstrFile)End Sub ↑OPENボタンがクリックされたときに呼び出されるイベントです。GetOpenFileName関数でファイル名を取得し、テキストボックス(Static_Path)にファイルパスを表示します。 Sub MainWnd_PlayButton_Click() Dim bErr As Long Dim mpp As MCI_PLAY_PARMS Dim buffer[MAX_PATH-1] As Byte '再生中の場合は停止させる If mop.wDeviceID Then MainWnd_StopButton_Click() 'サウンド ファイルのパスを設定します。 mop.lpstrElementName=buffer GetWindowText(GetDlgItem(hMainWnd,Static_Path),mop.lpstrElementName,260) 'メッセージ通知のためのウィンドウを指定 mop.dwCallback=hMainWnd 'MCIデバイスをオープン bErr=mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT,mop) If bErr Then MessageBox(hMainWnd,"デバイスのオープンに失敗","error",MB_OK) Exit Sub End If '再生 mpp.dwCallback=hMainWnd bErr=mciSendCommand(mop.wDeviceID,MCI_PLAY,MCI_NOTIFY,mpp) If bErr Then MessageBox(hMainWnd,"デバイスの再生に失敗","error",MB_OK) Exit Sub End IfEnd Sub ↑PLAYボタンがクリックされたときに呼び出されるイベントです。MCI_OPENコマンドでMCIデバイスを開き、MCI_PLAYコマンドでデバイスを再生します。 Sub MainWnd_StopButton_Click() Dim bErr As Long Dim dwCallback As DWord '停止 bErr=mciSendCommand(mop.wDeviceID,MCI_STOP,MCI_WAIT,dwCallback) If bErr Then MessageBox(hMainWnd,"デバイスの停止に失敗","error",MB_OK) Exit Sub End If 'デバイスを閉じる mciSendCommand(mop.wDeviceID,MCI_CLOSE,MCI_WAIT,dwCallback) mop.wDeviceID=0End Sub ↑STOPボタンがクリックされたときに呼び出されるイベントです。MCI_STOPコマンドでデバイスを停止させ、MCI_CLOSEコマンドでデバイスをクローズしています。 Sub MainWnd_MciNotify(flags As Long, DevID As Long) Dim dwCallback As DWord If flags=MCI_NOTIFY_SUCCESSFUL Then 'デバイスを閉じる mciSendCommand(DevID,MCI_CLOSE,MCI_WAIT,dwCallback) mop.wDeviceID=0 MessageBox(hMainWnd,"再生終了","Sound test",MB_OK) End IfEnd Sub ↑MciNotifyは、再生が終了した場合などにMCIコマンドから送られるイベントです。RADツールの「イベント処理」ダイアログのMMSYSタブで表示されています。 再生が正常に終了した場合(flagsパラメータに MCI_NOTIFY_SUCCESSFUL フラグがセットされていたとき)はMCI_CLOSEコマンドを送り、MCIデバイスをクローズします。DevID変数とmop.wDeviceID変数には同じ値がセットされています。 これで作業は終了です。コンパイル&実行をして、音楽ファイルが再生できているかどうかチェックしておきましょう。
https://w.atwiki.jp/abwiki/pages/63.html
MCIによる、お手軽サウンドプレイヤー 公式サイトで毎日のようにABのバグフィックスが行われていた頃…公式にMCIを使った解説があった。 AB4.24のサンプルにCDPlayerがあるが、これもMCIを使ったもの。 MCIでmpegやavi、waveやmidiなどを簡単に再生することができるので、エロゲー制作にはもってこいだ。 ただしMCIには問題があって、再生終了などのメッセージを受け取るにはウインドウハンドルが必要なことだ。 つまり、コンソールアプリ、N88アプリでは、扱えないということになってしまうような気がする。 その回避方法は、ダミーウインドウを作り、そいつにメッセージを送らせるようにする。 ダミーと言ってもウインドウ。見えないだけ。 そこで登場するのがサブクラス化だ。 ウインドウプロシージャを横取りするものである。 #N88BASIC #include api_mmsys.sbp Function callback(hwnd As HWND, msg As DWord, wp As WPARAM, lp As LPARAM) As Long [[Dim]] dwCallback As DWord If msg=MM_MCINOTIFY And wp=MCI_NOTIFY_SUCCESSFUL Then 'デバイスを閉じる [[mciSendCommand]](mop.wDeviceID,MCI_STOP,MCI_WAIT,dwCallback) mciSendCommand(mop.wDeviceID,MCI_CLOSE,MCI_WAIT,dwCallback) mop.wDeviceID=0 Exit Function [[End]] If callback = CallWindowProc(DefProc , hwnd , msg , wp , lp) End Function Function mciplay() As Long If mop.wDeviceID 0 Then Exit Function Dim ofn As OPENFILENAME Dim mpp As MCI_PLAY_PARMS Dim bErr As Long Dim buffer[MAX_PATH-1] As Byte 'ファイル名を取得 ofn.lStructSize=[[SizeOf]](OPENFILENAME) ofn.hwndOwner=_PromptSys_hWnd ofn.lpstrFilter=Ex"音楽 [[ファイル]](*.wav;*.mid;*.mp3;*.wma)\0*.wav;*.mid;*.mp3;*.wma;\0動画 ファイル(*.avi;*.mpg;*.wmv;)\0*.avi;*.mpg;*.wmv;\0すべてのファイル(*.*)\0*\0\0" ofn.nFilterIndex=1 ofn.nMaxFile=MAX_PATH ofn.lpstrFile=buffer If GetOpenFileName(ofn) = FALSE Then MessageBox(_PromptSys_hWnd,"ファイルのオープンに失敗","error",MB_OK) Exit Function End If mop.lpstrElementName=buffer If mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT or MCI_WAIT,mop) Then MessageBox(_PromptSys_hWnd,"デバイスのオープンに失敗","error",MB_OK) Exit Function End If mpp.dwCallback=_PromptSys_hWnd If mciSendCommand(mop.wDeviceID,MCI_PLAY,MCI_NOTIFY,mpp) Then MessageBox(_PromptSys_hWnd,"デバイスの再生に失敗","error",MB_OK) Exit Function End If [[Print]] "再生 ";[[MakeStr]](buffer) mciplay = GetTickCount() End Function Function GetTime() As Long If mop.wDeviceID = 0 Then Exit Function Dim msp As MCI_STATUS_PARMS msp.dwItem=MCI_STATUS_POSITION mciSendCommand(mop.wDeviceID,MCI_STATUS,MCI_WAIT or MCI_STATUS_ITEM,msp) GetTime=msp.dwReturn End Function 'ここからメイン処理 Dim mop As MCI_OPEN_PARMS 'サブクラス Dim DefProc As Long DefProc = GetWindowLong(_PromptSys_hWnd, GWL_WNDPROC) SetWindowLong(_PromptSys_hWnd , GWL_WNDPROC , [[AddressOf]](callback)) *INFINITY If mciplay() = 0 Then End While(mop.wDeviceID) [[Locate]] 0,2 Print "時間 ";GetTime() Sleep(500) Wend MessageBox(_PromptSys_hWnd,"再生終了しました。","N88MCI",MB_OK) [[Cls]] 3 [[Goto]] *INFINITY
https://w.atwiki.jp/abwiki/pages/331.html
'ブロック崩し'操作方法'←と→キーだけ。#N88BASICConst Xmax = 21Const Ymax = 22Const KABE=99Const BALL=100Const BAN=101Dim map[Xmax,Ymax]'マップ情報Dim k'のこりブロック数Dim I$, x , y ,a'汎用Dim c, wait'速度制御Dim sx, sy'盤の位置Dim bx, by 'ボールの位置Dim bv, bh 'ボールの向きDim dflag'デバッグモードdflag=0Goto *MAIN'----------------------------' サブルーチンここから'----------------------------'初期化*INIT'変数の初期化c=0wait=8 bx=10 by=18sx=10 sy=19bh=-1 bv=1'マップの初期化For y=1 To Ymax map[1 ,y]=KABE map[Xmax,y]=KABENextFor x=1 To Xmax map[x ,1]=KABE map[x,Ymax]=KABENextFor y=4 To 9 For x=2 To Xmax-1 map[x ,y]=y-3 NextNextFor x=1 To Xmax map[x ,1]=KABENextmap[bx,by]=BALLmap[sx-1,sy]=BANmap[sx,sy]=BANmap[sx+1,sy]=BANReturn'描写*DRAWk=0For y=1 To Ymax For x=1 To Xmax Locate x,y Select Case map[x,y] Case KABE Print "X" Case BALL Print "o" Case BAN Print "=" Case 0 Print " " Case Else Color map[x,y],0 Print "X" k=k+1 Color 7,0 End Select NextNextIf dflag=1 Then Locate 25, 5, Print bx,by Locate 25, 6 Print bv, bh Locate 25, 7 Print sx,sy Locate 25, 8 Print kEnd IfReturn'盤の移動*MOVIf map[sx+2*a, sy] = 0 Then map[sx-1*a,sy] =0 map[sx+2*a, sy]=BAN sx=sx+aEnd IfReturn'ボールの移動*BALLMOVIf by sy+1 Then *GAMEOVERIf map[bx+bh, by+bv] 0 Then'壁に当たったら '反転 If map[bx+bh,by] 0 Then bh=bh*-1 If map[bx,by+bv] 0 Then bv=bv*-1 If map[bx+bh, by+bv] 0 Then bv=bv*-1 bh=bh*Sgn(Rnd()-.5)End IfIf map[bx-bh, by-bv] 0 And map[bx-bh, by-bv] 7 Then map[bx-bh, by-bv]=0If map[bx, by-bv] 0 And map[bx, by-bv] 7 Then map[bx, by-bv]=0map[bx,by]=0bx=bx+bhby=by+bvmap[bx,by]=BALLReturn'----------------------------' サブルーチンここまで'----------------------------'----------------------------' メインルーチンここから'----------------------------*MAINGoSub *INITDo GoSub *DRAW I$="" I$=Inkey$() Select Case Asc(I$) Case VK_LEFT a=-1 GoSub *MOV Case VK_RIGHT a=+1 GoSub *MOV End Select c=c+1 If c=wait Then GoSub *BALLMOV c=0 End IfLoop While k*GAMEOVERCls 3Print "G A M E O V E R"INPUT I$End'----------------------------' メインルーチンここまで'----------------------------
https://w.atwiki.jp/abwiki/pages/184.html
プロジェクトエディターで簡単なラーメンタイマーを作ってみつ。 タイマー処理とGDIを使っている。 プロジェクト HiraiRamenTimar コモンコントロールを使用するにチェックを入れる。 次のコントロールを貼り付ける。 エディットボックス ID=EditBox1 ボタン ID=CommandButton1 プログレスバー ID=ProgressBar1 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバルな変数、構造体、定数、関数を定義します。Dim g_counter As DWordConst ID_TIMER01 = 01Sub TimerIsOut()Dim hdc As HDCDim hbr As HBRUSH, hobr As HBRUSHDim hpn As HPEN, hopn As HPENhdc = GetDC(hMainWnd)hbr = GetStockObject(DKGRAY_BRUSH)hobr = SelectObject(hdc,hbr)hpn = GetStockObject(WHITE_PEN)hopn = SelectObject(hdc,hpn)RoundRect(hdc,0,0,444,333,15,15)TextOut(hdc,100,50,"時間", 4)SelectObject(hdc,hopn)SelectObject(hdc,hobr)ReleaseDC(hMainWnd, hdc)End Sub'-----------------------------------------------------------------------------' ウィンドウメッセージを処理するためのコールバック関数Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord' TODO この位置にウィンドウメッセージを処理するためのコードを記述します。' イベントプロシージャの呼び出しを行います。MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)End Function'-----------------------------------------------------------------------------' ここから下は、イベントプロシージャを記述するための領域になります。Sub MainWnd_Destroy()HiraiRamenTimar_DestroyObjects()PostQuitMessage(0)End SubSub MainWnd_CommandButton1_Click()Dim sss[555] As Byte'エデットボックスから数字を獲得GetWindowText(GetDlgItem(hMainWnd,EditBox1), sss, 555)g_counter = Val(sss) * 60'秒に変更SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETRANGE32,0, g_counter)SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETPOS,0, 0)SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETSTEP,1, 0)SetTimer(hMainWnd, ID_TIMER01, 1000,NULL)End SubSub MainWnd_Timer(TimerID As DWord)Select Case TimerIDCase ID_TIMER01g_counter = g_counter-1SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_STEPIT,0, 0)If g_counter = 0 Then'時間切れTimerIsOut()KillTimer(hMainWnd, TimerID)End IfEnd SelectEnd Sub
https://w.atwiki.jp/kirapara2022/pages/49.html
オススメ記事 シューズ 髪型 アウター きらめきパラダイス(キラパラ)のファッションカテゴリ「ソックス」についてまとめたページです。スタイル、タグ別に並び替えも出来るので参考にどうぞ! 目次 アイテム一覧星6 星5 星4 星3 カテゴリ一覧 アイテム一覧 星6 ▼チェックボックスで列の表示・非表示を切り替えられます スタイル1 スタイル2 タグ1 タグ2 入手先 名前 スタイル1 スタイル2 タグ1 タグ2 入手先 目次へ 星5 ▼チェックボックスで列の表示・非表示を切り替えられます スタイル1 スタイル2 タグ1 タグ2 入手先 名前 スタイル1 スタイル2 タグ1 タグ2 入手先 戯れる猫ちゃん 甘い 活発 アニマル ル|ム 朧月夜シーズン ひし形の夜時計 ク|ル 優雅 大人っぽい ストリ|ト 変装物語・望月編 目次へ 星4 ▼チェックボックスで列の表示・非表示を切り替えられます スタイル1 スタイル2 タグ1 タグ2 入手先 名前 スタイル1 スタイル2 タグ1 タグ2 入手先 クリームフロート 活発 華麗 ロリ|タ カントリ| 宝探し大作戦 目次へ 星3 ▼チェックボックスで列の表示・非表示を切り替えられます スタイル1 スタイル2 タグ1 タグ2 入手先 名前 スタイル1 スタイル2 タグ1 タグ2 入手先 目次へ カテゴリ一覧 目次へ
https://w.atwiki.jp/abwiki/pages/195.html
名称 |Sub/Function 読み |さぶ/ふぁぬしょん 文法 |Sub/Function name ([arglist]) [As type] [commands] [Exit Sub/Function] [commands] End Sub/Function 説明 |Subは戻り値無しFunctionは戻り値あり。
https://w.atwiki.jp/abwiki/pages/351.html
N88BASICしか知らない人にとってABを初めて触ったときは手も足も出ないというのが本音でしょう。 ABは構造化というものがサポートされているからです。 構造化はN88BASICのプログよりわかりやすいという人もいますが、実際は逆です。 構造化(関数に分割すること)は上から順に読むことができず、かのGotoよりもたちが悪いです。 またClassはその上を行く難解で複雑でカオスで信者とかアンチとかが入り交じっている世界です。 ブログなどでオブジェクト指向とはなんて語ると、どこからともなく変な人が現れて荒らされてしまいます。 さてここではオブジェクト指向よりもクラスの作り方、使い方を説明します。 なおABのヘルプには必要なことが書いてなかったり、どうでもいいことに冗長な説明があったりして使いにくいのですが、 クラスに関してはそこそこまとまっているので、是非、是非、目を通してください。 カタカナ英語が多くてうんざりしますが、CHumanの動きが読めれば十分だと思います。 このクラスの動作が分からない人は遠慮なく質問してください。 質問は恥ではありません。馬鹿にするヤツのほうがよっぽど恥ずべき連中です。 クラスの書き方は超絶に簡単です。 似通ったデータなり関数をかき集めてクラスとして包んでやればいいのです。 Class ABFILEPrivatehF As HANDLEPublicFunction mOpen(filename As String) As LongIf hF Then mClose()hF = CreateFile(StrPtr(filename), GENERIC_READ, 0, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)If hF = INVALID_HANDLE_VALUE Then hF = NULLEnd IfmOpen = hFEnd FunctionFunction mRead(buffer As VoidPtr, length As DWord) As DWordIf hF = NULL Then Exit FunctionReadFile(hF, buffer, length, VarPtr(mRead), ByVal 0)SetByte(buffer As *Byte + mRead, 0)End FunctionFunction mClose() As LongIf hF Then CloseHandle(hF)hF = NULLEnd FunctionEnd Class#N88BASICDim f As ABFILEDim buf[555] As Bytef.mOpen("555.abp")While f.mRead(buf, 555)Print MakeStr(buf);Wendf.mClose() これはファイルを開いて読んで閉じるだけのショボクラスです。 ですが、クラスにすることのメリットは幾つかあります。 グローバル変数になりがちはファイルハンドルを内含することができます。 また複数のファイルを開くときに楽ができます。 次回ではこのクラスを大幅に変更しちゃいます!
https://w.atwiki.jp/slowlove/pages/1231.html
今回童話風に、と 昨日から考えてた話。奇しくも「人間とゆっくり」についてですが、どうか気楽な気分で その山のゆっくり達と、麓の村の人間は仲がちょっと悪かった。 来る日も来る日も言い争いと喧嘩は絶えず、大人の諍いは子供にも伝播し、幼児が 泣いて帰ってきたり、赤ゆっくりが帰ってきて何も言わずに奥の部屋に翌朝まで閉じこもる事も よくある光景となっていました。 資源や土地の問題もあり、人間は村の周りに塀を高く作ったり、動画のNGワードを「ゆ」に 設定したり、串カツ屋に至っては、「ゆっくりお断り」の看板を掲げました。 ゆっくりもゆっくりで、川の辺りに特に何する訳でもないのに、にちょりを常駐させたり、動画には すべからく「期待の病人」のタグを無差別につけたり、「あの村の人間はすぐにタレを2度漬けする」 と愚痴ったりしました。 そんな状態が気の遠くなる年月続いたある日―――山のリーダーのうつほが、旅先で行き倒れ になっているゆっくりを見つけました -----ー ,-‐'、 /\ /\ |_,| r-、 (ヒ] ヒン) i,,__ ) ゆっくり饅頭でもどうぞ. |,,ノ '" ,__, " '.} \ ヾ_ノ / `ー-----ー^ | .∥ / ("___|_`つ 気を取り直した、良い感じのオンバシラを背負ったゆっくりは、実は他の神様だと名乗りました。 うつほは、正直話半分に聞いていましたが、 「お礼に何かプレゼントをあげよう」 「じゃあ、人間をゆっくりできなくさせて下さい!!!」 神様は、突然の放送禁止用語に少し困りましたが、気を取り直して、ある箱を出しました ___________ / 核 /.| / / .| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | Blakku. | | | ゝ、 /_ | | | rr=-, r=;ァ'i . | | | "" ,___, "" | | | ヽ _ン | / |__________|/ 「ええと、これは………?」 「これを開ければ、近くの山ごと人間の村をゆっくりできなくさせる事ができるよ!!!」 「山もゆっくりできなくなったら意味ないよ!!! もっとこう……人間だけをゆっくりできなくさせる、環境と地球に優しい 『人間ホイホイ』『人間コロリ』なんてものは無いの?」 「そんなご都合主義なものがあるわけ無いよ!!!」 仕方無しに、ブラックボックスをもってうつほは山へ帰りました。 が、途中の関係ない村で一泊した際、うっかりその話を宿の人間にしてしまったのです。 とんでもない兵器の登場に、欲に目がくらんだその宿の人間達は、通報する事もせず、箱を他のものと 摩り替えてしまいました。 __________ / /鉈 /| . / / / | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ..| | 弱音ハック ...| ..| | __,. 、__ . .| ..| | rr=-, r=;ァ. .| ..| | ./// ///" ...| ..| | 'ー=-' | / |__________|/ うつほが出て行ったのを見届けた後、人間達は箱を開けました __,, ======== ,,__ ...‐''゙ . ` ´ ´、 ゝ ''‐... ..‐´ ゙ `‐.. その村がどうなったのか 今は誰も知りません / \ .................;;;;;;;;;;;;;;;;;;;;;; ´ ヽ. ;;;;;;;;;;;;;;;;;;;;;;................. .......;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙ .' ヽ ゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;...... ;;;;;;゙゙゙゙゙ / ゙ ゙゙゙゙゙;;;;;; ゙゙゙゙゙;;;;;;;;............ ;゙ ゙; .............;;;;;;;;゙゙゙゙゙ ゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;.......;............................. ................................;.......;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙ ゙゙゙゙i;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;l゙゙゙゙゙ ノi|lli; i . .;, 、 .,, ` ; 、 .; ´ ;,il||iγ /゙||lii|li||,;,.il|i;, ; . ., ,li ' ; .` .; il,.;;. ||i .i| ;il|l||;(゙ `;;i|l|li||lll|||il;i ii,..,.i||l´i,,.;,.. .il `, ,i|;.,l;; `ii||iil||il||il||l||i|lii゙ゝ ゙゙´`´゙-;il||||il|||li||i||iiii;ilii;lili;||i;;;,,|i;, ,i|liil||ill|||ilill|||ii||lli゙/`゙ ´゙`゙⌒ゞ;iill|||lli|llii ;゙i|||||l||ilil||i|llii;|;_゙ι´゚゙´ 山に帰ったうつほは、友達のおりんと、他の信頼できる数人のゆっくり達にその事を話しました。何となく怖くて、皆しばらくは 秘密にしておくことになりました それからというもの――― 「おいゆっくりども!!! またお前等だな、『期待の病人』なんてタグをDir 〇n g〇ey に今更貼りやがって!!!あとついでに田んぼの水も ひきやがって!!!」 「知らないよ!!! 何イッテルノ? D〇r en gr〇yなんて見えないよ?あと田んぼの水を横取りしたのは他の村だよ!!!これは マジ話だよ!!!」 「タグはやっぱりお前等か!!!」 「は、はかったなああ!!!」 「いや、そういう訳じゃ……この体なしジオング!!!」 「何を、このパーフェクトジオング!!!」 なんて諍いがあったとしても…… 見なさい、みのりこ また人間どもが、私達の可愛さについて嫉妬してるわよ ___,∧"´ ト-、_ ,ゝ/ヽ、ノ V _」∠ 7ァ_>ァ、 _,,.. -――C○ィ )  ̄ ̄\ ., 'ィiヽ' _>''"´  ̄ `ヽ!, // ̄ヽ ゝ○o _ ヽ / キア'" ', 、`フ Y //\ / \`L_ ', ,イ / / ,ハ! / ! _!_ i ! Y .,' / ゝ、__,..-、\  ̄`i う) i こっちは最終兵器があるっていうのに '、!,イ ,' /´___!_ i ハ _ノ_`ハ/ ノ | / i イ ,ヘ ヽ \ ` し' | 知らぬが仏ねえ ノ ', レ、 !ァ´ノ_」_ノレ' レ' ソ`Y i、( ゝ、| 斗jナ ル ヽ、ナ‐- ',ヽ、 ハ ! \ ( ソ'´ Vi rr=-, r=;ァ ハヘノ' T{∧{ rr=-, r=;ァ i} リ `T ‐ヽ y'´ ! !. '" ̄  ̄"'ノノハ _ノ ム!"" ""/ !_」 ,' ! , ヽ、_,ゝ'"'" 'ー=-' ' ,ハ ! ゝ._ノ人 'ー=-' ∠ノ | '、 ゝ、ノ )ハゝ、, ,..イノ ソ `ー‐ >, 、 _,. <_Z_ /ノ/ `ヽ(ゝ/)ヽ,ノイi,` ''=ー=' i´ノ´ンノ / ̄_ヽ`ー-一'イ==≠二 「ぷー クスクス あいつら、自分達がゆっくりの手の平の上にいるとも知らないで」 「こっちはいつでも人間をゆっくりさせなくしてやれるのにね!!!」 「おお、おろかおろか」 と、内心ほくそえんでおりました。 その余裕が何となく周りにも伝わり、こうして、ゆっくり達はイライラしない生活を手に入れました しかし、そんな生活も長くは続きませんでした 何故なら…… 「ああ、やっぱり頭にくるねおりん!!! このブラックボックス開けて、人間どもをゆっくりできなくさせちゃおうよ!!!」 「いや、でもこれ開けたら、この山全体がゆっくりできなくなるんだよ!!!」 「そっかあ……じゃあ、開けられないね……」 「………開けられないね……」 「開けられないね」 「――――――――意味ないね」 「――――――――怖いよー」 今度は、戦々恐々とする日が始まり、皆ブラックボックスは厳重にしまわれ、話題にしなくなりました。 ―――それが、中身の無い、ただの箱だともしらずに。 人間との溝は中々埋まりませんでした。いつしか、ブラックボックスの事を知っているゆっくり達も年をとり、一人二人と死んでいきました。 最後に、この箱を持ち帰ったうつほは死ぬ間際に、自分の子供の子うつほに初めてこの事を打ち明けました。 「――――は、早く言ってよね………」 山で、いいえ、この世界で、ブラックボックスの事を知っているのは、子うつほだけになってしまいました。 いっその事、この事を他の誰かに教えて、自分は隠居してしまおうかとも考えました。 しかし、こんな危ないものを管理しないわけにはいきません。それに、好奇心旺盛な若いゆっくり達に知られでもしたら、面白半分に 用も無いのに開けてしまう子がいるかもしれません 長い長い、親から子に受け継がれた闘いが続きました 人間との喧嘩はいつまでも続きます。 嫌いな相手をゆっくりさせなくしてやりたい。 しかし、それをやってしまうと、結局自分達までゆっくりできなくなってしまう。 しかし、腹は立つ……… 「一体どうしたらいいのおおおおお!!?」 子うつほは、悩みに悩んで、子おりんに相談しました。 そして――――次の日 -----ー ,-‐'、 /\ /\ |_,| r-、 (ヒ] ヒン) i,,__ ) ゆっくり饅頭一個持ってくよ――――人間の村へ. |,,ノ '" ,__, " '.} \ ヾ_ノ / `ー-----ー^ | .∥ / ("___|_`つ それから、また長い長い年月が経ちました。人間もゆっくりも苦しみました。数え切れないほどの話し合いや打ち合わせや酒宴があり――― 子うつほと子おりんも年をとりました。 「ねえ、あの箱の事、誰に教える?」 「誰にも教えないでおこうよ。あのまま閉まっておこう。その方が皆ゆっくりできるよ」 「そうだね。きっと開けたいなんて思う子もいないからね」 恐怖が人やゆっくりを突き動かす時代は終わろうとしていました 人間も、ゆっくりも、山も村も生活は次第にゆっくりし始めました。 ある朝、子うつほと子おりんは、息を引取っていました 村の人間も、山中のゆっくり達も、自分達をゆっくりさせるために、懸命に働いた二人に涙を流し、盛大な葬儀が行われました。 式の準備の前に、孫うつほ達は部屋を整理していて、大事にしまわれた箱を見つけました。 これは、生前子うつほと子おりんが大事大事に、 決して開けない様にしまっていたものです 「これは、お母さんがとっても大切にしていたものに違いないね!!!」 皆は、フタを空けて中身を覗くなんて事はせず、そのまま子うつほの棺桶に入れました お墓の前の線香と一緒に――――箱を大事に抱えた子うつほと子おりんが、空に昇っていく様子が目に浮かぶようでした。 ――終わり―― ――おまけ―― さて、天国では――― __________ / /鉈 /| . / / / | _人人人人人人人人人人人人人人人_ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ..| > 神様 箱を返しにきたよ !!! < | 弱音ハック ...| ..|  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ | __,. 、__ . .| ..| | rr=-, r=;ァ. .| ..| | ./// ///" ...| ..| | 'ー=-' | / |__________|/ /{ へ } `>、_ __∠__/ ト ((く \ ,! >'"´´ `ヽ { ト 、 \ \ト、 くノ,' , , 、 、 ∨ __/ ヽ : , _.z=======ゝ、_ヽ : \ \\ノ ウツλホハ.リイ入./ .l )) ', : , ''/ヽ'、 ,´ ̄ ̄ ̄`"' .\ヽ : \  ̄! !i(ヒ_]'`' ヒ_ン! !/ / ! : ∧' ´ フ´ ヽ : レく\ノ !ル""r-‐¬""! ∟/ ,' .:..∨ レヘ/ ,' ', ', : ', イ ! !.|,ゝヽ、__,ノ_ノ! ! ヽ / :i / 、__, i i ヽ | : 弋 `r __i.r'/ } { ./ .) / : 八 ,' /」__.! /,| ,/、ハ;;ハ , イ : \ ̄.! ! |'、Φ__ウ ニュ?イ/ ノ ヽ | /´(◯), レ 、(◯)イイ ノ i : 弋ヾ从 | | λ! ノノ / l レ'iヘ!" ,rェェェ、 " i i ヽ. : / ヽハ_/ ヽ ハ ノ ,' ノ ハ! |,r-r-| 人 ' l : / / ',ノ ト, | ,' ノ イ ト> , `ニニ´ イ ! ', ノ : ァ、_/ '; ` 、 _人人人人人人人人人人人人人人人_ > うわああああああああああ!!! <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ゆっくりと人間の罵りあいを見ていて微笑ましさを感じさせるってのがミソでしたw 人間とゆっくりが仲良く共存している関係も好きですけど、 人間とゆっくりがいがみ合っているけどそれを見ていて可愛い、楽しいと思える 作品っていうのもいいものだと思いました 饅頭を持って人間のところに行って、それから話し合いやら打ち合わせやら、 何よりも酒宴で両者の関係が良くなっていったってのがよかったです やっぱ東方から分かれた作品において酒の力は偉大ですよね -- 名無しさん (2009-05-23 17 33 43) 結構黒いところがあるのにそれが醍醐味になってるな〜 ところでAAずれてね? -- 名無しさん (2009-05-23 19 12 41) その箱はマズイでしょうw 面白かったです -- 名無しさん (2009-12-02 20 47 58) 名前 コメント
https://w.atwiki.jp/abwiki/pages/578.html
人間や、物の容姿のこと。見た目。
https://w.atwiki.jp/tpc-document/pages/264.html
第5章「BLACK BOX Startup(ブラックボックスの秘密)」 「おいメイヴ! 返事をしろ、聴こえてるのか。ふざけてる場合じゃないんダぞ!」 続けて声をかけるが、依然として反応はない。 顔を上げてメイヴの方を見ると、メイヴの目や体が発光している。データのやり取りを示す文字の表示はさらに速度を増し、もはや目で追うのが困難になってきた。 メイヴのこんな様子を見るのは初めてだ。シャトルの解析の時はこうはならなかった。 霧の装置からの放出はさらに激しくなり、ゲンダーたちはすでに赤と青の光球に囲まれている。唯一の出口は防壁で塞がれてしまい、破壊を試みるもゲンダーの力ではかなわなかった。 メイヴはゲンダーの声に応える様子はなく、なおもアクセスを続けている。そのとき光がこちらに突進してきた。 「グメェェェーーーッ!」 やられる。そう思った瞬間、グメーシスが飛び出してきて、周りの霧ごと光球を消滅させた。 「あ、危なかった。グメーシス、おまえに助けられるとはな…。そうダ! おまえならあの防壁も消滅させられるんじゃないか? やってくれ、グメーシス!」 「グメメぇーっ!」 一方そのころ、この建物の最上階にある一室では一人の男がモニタ画面を前に唸り声を上げていた。 「急に電力が復旧したと思ったら、こんどは何だ!? それにこの手の早さ、僕に追いついてくるとは只者じゃない」 霧の装置は精神体の精製において欠かせないものだ。いわばこの施設の心臓部。一体どこから誰がどうやって、ここへ侵入したのかはわからない。が、電力が勝手に復旧したとき「もしや」と思った。そしてその勘は間違っていなかった。 発電室は心臓部のすぐ隣にあるのだ。外部の者があれに触れるのを許してはならない。 「誰も僕の研究の邪魔はさせない。僕の研究は誰にも渡さない! たとえ誰だろうと、大統領だろうと…!」 男は人間業とは思えない速度でコードを入力すると、これがトドメだと言わんばかりに力強くキーを叩いた。 「これで終わりだ。大統領の差し金め!」 グメーシスが体当たりすると、予想通り強固な防壁も簡単に穴が空いてしまった。 「やったぞ、グメーシス! よし、あとはオレやメイヴも通れるように穴を大きくしてくれ」 思わずガッツポーズをとるゲンダー。しかしその背後で電気が弾けるような不吉な音が響いた。 見るとメイヴから火花が飛び出し、煙が噴き出している。 それに霧も濃くなってきた。再び敵に包囲されるのは時間の問題だ。 ゲンダーは直感した。これはまずい。難しいことはわからないが、非常にまずい。 「くッ、ここままじゃメイヴが……。仕方ない、許せよメイヴ!」 右腕を大きく振りかぶって、メイヴの側頭部に45度の角度で思い切り叩きつけた。 調子のおかしくなった機械を手っ取り早く直すにはコレに限る。 激しい音がしてメイヴの体が横倒しになった。少々へこんでしまったが、気にしている場合ではない。 『システムに異常を確認。強制終了します。セルフチェックの後、再起動を行います。しばらくお待ちください』 そのメッセージを最後に開いていた遠隔モニタが次々と閉じられ、ついにはメイヴ本体の光も消えた。 「や、やりすぎたか? まあいい、これで暴走は止まったはずダ。さてと、この繋がってるコードはどうすりゃいいんダ? 急に抜いても大丈夫なのか」 しかしいくら引いてもびくともしない。これを外さないことにはメイヴを連れて脱出することもできない。 「ダメか。いっそ切ってしまうか。それとも…」 唸りを上げる霧の装置に目を向ける。 これがやばい霧を作り出すものだ、ということ以外にどういったものなのか、ゲンダーは理解していない。だがそれ以上の興味もなかった。 これを壊せば霧が溢れ出して危ないことになるとメイヴは言っていたが、危ないことにならもうなっている。ならば何も悩むことなんてなかった。 「こいつを片付けてしまえば……これでも食らえ!」 霧の装置に向かって汁千本を放つ。しかし、装置はびくともしない。 「こいつにも効果ナシかよ。さすがに自信がなくなってくるなぁ…。ダったら、グメーシス。やれ!」 「グメっ!」 短く鳴いて答えると、グメーシスは装置の中央に向かって突進、小さな風穴を開けた。 するとたちまち穴からはすごい勢いで霧が溢れ出してくる。グメーシスは突っ込んだきり、まだ出てこない。 「お、おい。グメー……?」 【出力超過。内圧上昇中。臨界値を突破しました。爆発の危険があります。直ちに停止してください】 「げッ!?」 耳障りな警報と共に、不吉な情報を告げられる。そして今度は霧の発生装置のほうが悲鳴を上げだした。 溢れ出す霧は止まりそうにもない。密度が濃くなり真っ黒になった霧は、すぐにでも部屋を漆黒に塗り潰してしまいそうな様子。考えている時間もなければ手段を選んでいる暇もない。もう暗闇はこりごりだ。 「ええい、もうどうにでもなれ!」 グメーシスの開けた風穴に向かって、渾身の汁千本をぶちこむ。 一瞬の静寂の後に、轟音とともに部屋が大きく振動し始めた。閃光がチラついたかと思えば、次の瞬間には霧の装置は爆発して弾け飛んでいた。 装置の部屋から伸びる一本道の通路の半ばでゲンダーは目を覚ました。爆風で吹き飛ばされてほんの一瞬ほど意識が飛んでいたらしいが、幸いとくに目立った被害はなさそうだ。隣にはメイヴの筒のような体も転がっている。 「無事か。しかしグメーは…?」 装置の部屋に目を向ける。 室内に充満する霧に引火して、爆発が爆発を呼び、連鎖する爆発が通路に炎を吹き上げる。 「まずい!」 グメーの心配はあとだ。 迫る炎の壁を背中に感じながら、メイヴを転がして通路の先へと駆け出した。 この通路を抜けて発電室に入り、すぐ左手のほうにエレベータがあったはずだ。直線状にあれば楽だったのだが、なんとかして左に曲がらなくてはならない。 しかしメイヴの重い胴体を起こしたり持ち上げたりするほどのパワーはゲンダーにはなかった。となれば、転がしたまま曲がらなければならない。 今メイヴは頭を左側に向けて横たわった状態で転がっている。 筒状のものが転がる場合、左右両端の円周の長さが同じなら真っ直ぐに転がるが、それが同じでない場合、円周の短いほうが接地面に対して円が一周するのに必要な距離が短くなるため、円周の短いほうに曲がっていくことになる。 つまり左に曲がりたければ左の円を小さくすればいいのだ。 「やむを得ないか。度々すまん、メイヴ」 ゲンダーはメイヴの頭に汁千本を放った。その衝撃で、メイヴの頭が少しひしゃげた。 そのままメイヴは弧を描いてエレベータの入口へとカーブする。 「ビンゴ! あとは……邪魔ダ!」 エレベータの扉を汁千本で破壊。勢いよくその中へと飛び込んだ。 間髪いれず目に付いた上階のボタンを押す。上ならまずはどこだっていい。 内扉が閉じ、エレベータが上昇を始める。しばらくして、下のほうから大きな爆発音が聞こえてそのまま静かになった。どうやら難は逃れたようだ。 男は悔しそうに歯噛みしながら机に拳を思い切り叩きつけた。 「くそう!! なんてことをしてくれたんだ。まさか大統領め、あれを破壊してくるとは思わなかった。この研究所の設備が狙いじゃなかったのか。もしかして、すでに同様の設備が用意できている? 必要なカードは揃っているということか。ではなぜ……」 思案を巡らせある結論に至ったとき、男はぎょっとして蒼ざめた。 「まさか……僕の命を狙ってのことか。精神兵器のことで僕が黙っていないと知っていて、邪魔になるから手を打とうと、そういうことなのか?」 はっ、として周囲を見回す。 室内には彼以外には誰もいない。誰の気配もない。 しかし男は見えない何かに怯えるような素振りを見せて後ずさった。 「ひ、卑劣な男だとは思っていたが、まさかそこまで! 全てを掌握しておきながら、その上で僕を消すことで完全に精神体の研究を我が物にしようというのか! 許せない。やはりそれが貴様の本性か、ルートヴィッヒめ!」 男は震える手を机の上の受話器に伸ばして電話をかけ始めた。 第一声は受話器の向こう側が先に発した。 「ほう。君のほうから連絡してくるとは、珍しいこともあったものだな。一体何の用だね、ガイスト君」 ガイストと呼ばれた男は、怒気を孕ませながら叫んだ。 「何の用とはご挨拶だな、大統領。私が何も知らないとでも思ったか? もう我慢の限界だ! 絶対に研究は渡さない」 「落ち着きたまえ、ガイスト君。何をそんなに興奮しているのかわからないが、一体君は何の話をしているのだね」 「とぼけても無駄だ。あなたが以前から私の精神体の技術を秘密裏に兵器転用していることはわかっているんだ。うちの優秀なスタッフが突き止めてくれたよ。そう、あなたが追い出したうちのスタッフがね!」 「……あれは経費削減のためだ。マキナとの戦争で我が国の経済状況は……君も理解しているだろう」 「ええ、もちろん。まさか段階的にはいえ、9割近くも部下を奪われるとは、まったく大層な状況ですね。私に研究をさせないつもりか? そしてその奪った部下を使って新たに兵器を開発しているそうじゃないですか。馬鹿にするのもいい加減にしろ!」 「…………精神体技術を我が軍で活用させてもらっていることは否定しない。だが転用とは酷い言われようだな。君だって精神兵器を開発していたではないかね。ほら、あのG-ナントカというやつだ。それに君は我が国からの資金提供を受けて研究をしているんだぞ。その成果を国に還元してもらうのは当然のことだと思うがね」 「あれはあくまで自己防衛のためだ。他国に攻め込むためのものじゃない。そして私が言っているのは、そういうことじゃない。大統領、あなたが私の研究そのものを奪おうとしていることはもうわかっているんだ」 「だから君は一体何を…」 「私が邪魔なんだろう? だから消そうとしたのか。もうあなたを信用することなどできない」 「何の……事だ?」 「あなたが刺客を送り込んだことはわかっている」 大統領は答えない。 重い静寂が続いた。 しばらくしてから、低い声で大統領は言った。 「君が言いたいことは以上かね。あれだな、君は……あの男とよく似ているよ」 「どういう意味だ」 「残念だよ、ガイスト君。そんな『妄執』に囚われるとはね。君を精神体研究主任から外させてもらう。もう話すことは何もない。もう会うこともないだろう。さらばだ」 そう言い捨てると、アドルフ・ルートヴィッヒ大統領は深いため息とともに静かに受話器を置いた。 その一部始終を見ていた側近の黒服の男は尋ねた。 「アドルフ様。まさか例の件、勘付かれたのでは」 「いや刺客は送り込んではいない。今はまだ、な」 「では、奴はなぜ…」 「わからん。だがそろそろ限界のようだな。フリードリヒ、ガイストの処遇は任せたぞ」 「はっ、お任せを」 フリードリヒと呼ばれた側近の男は畏まって敬礼すると、すぐに大統領室を後にした。 一人になったのを確認すると、アドルフはデスクの引き出しから透明の袋に入った小さな黒い石の欠片を取り出して、苦々しい表情でそれを眺めながら呟いた。 「おのれガイストめ。貴様まで私に逆らうか。優秀な科学者をまた一人失うのはなんとも惜しい……。それもこれも、ヘイヴ! おまえさえ私を裏切らなければ、こんなことにはなっていなかったのだ…」 悔しそうに黒石片を握り締めたあと、落ち着きを取り戻したアドルフは、誰に対して取り繕うでもなく一人咳払いをすると、石の欠片を置いて代わりに再び受話器に手を伸ばした。 「ああ、私だが。急ぎの用事ができた。すぐに車を手配してくれ。行き先は道中説明する」 エレベータ内で一息つくとメイヴの目に光が灯った。 『セルフチェックを終了しました。システムを再起動します』 システムメッセージの後に続いてメイヴの言葉が並ぶ。 『おはようございます。どうやらシステムがダウンしてしまったようですね。状況を教えてください』 「何が起こったのか、こっちも聞きたいんダが……」 メイヴが暴走をしてからここまでのことを説明した。メイヴを殴り倒したことは黙っておこう。 『なるほど。ご迷惑をおかけしました』 「オレもこれまで何度もメイヴに助けられたからな。お互い様ダ」 それにヘイヴとの約束もある。必ずメイヴをマキナまで無事に連れて行く。ヘイヴと別れたときにそう心に誓ったのだ。それが彼からの最後の頼みなのだから。 『先程のセルフチェックの結果、何者かによるハッキングが原因でブラックボックスの封印の一部が解除されたようです。それによってオーバーロードが引き起こされました。今回の暴走はそれが原因でしょう』 「確かにあの時のメイヴの様子は普通じゃなかったな。ところでブラックボックスというのは?」 『私の中の封印された未知の領域で、ヘイヴが研究を重ねていたものです。彼の助手をしていたのに何も聞いていないんですか?』 「極秘の研究ダと言っていた。情報が漏れることを危惧してか、オレにも詳しいことは教えてくれなかった」 『そうですか。私のデータベースには知ってのとおり、ヘイヴの研究成果の全てが収められています。それ以外にもあらゆる物事の情報や、おそらくヘイヴが読んだことのある様々な書物の内容などもデータ化されて記録されているのですが、それら雑多のデータとヘイヴの研究成果はそれぞれデータベース内の異なった領域に保存されています。物理的にもそれらは別個のパーツとして分かれていて、ヘイヴの研究データを保存した領域を特にブラックボックスと呼んでいます。もう一方の領域には私が自由にアクセスして情報を引き出したり、逆に新たに得た情報を書き込んだりすることもできますが、ブラックボックスには私でも自由にアクセスできるわけではなく、何重にもセキュリティロックがかけられています。そしてそれを私が解除することは、プログラム上できないように設定されています』 「まるで他人事みたいに言ってくれるもんダな」 『そういうわけですからブラックボックス内にどんなデータが入っているのか、私も詳しくは知りません。ですが、今回の暴走によってその一部を解読することができました。次のとおりです』 メイヴは遠隔モニタに解読できた情報を表示させた。 研究ノート#1302 『彼の言うとおりだった。あれは人類には早すぎる代物だ。私にはとても制御できず、結果として彼に取り返しのつかないことをしてしまった。彼に合わせる顔がない。黒石は封印するべきだろう。私の研究もここまでだ』 研究ノート#1303 『大統領に相談したところ、研究の中止は認められないとのことだ。以前の私も同じ気持ちだったが、今改めて私は黒石の危険性を知った。痛いほどに味わってしまった。誰が何と言おうとこれは封印する。そうあるべきだ』 研究ノート#1304 『私は大樹大陸を去ることに決めた。スヴェンに何も言わずに行くのは心苦しいが、あれを隠し通すためには仕方がない。大統領に相談を持ちかけるべきではなかった。研究上の事故として秘密裏に処分するべきだったのだ』 研究ノート#1305 『極東の人の住まない島の山奥に新たな研究所を構えた。建築を学んだことはないが、大掛かりな機械だと思えばやってできないことはないな。親友から教わった技術が役立った。今日からここが私の新しい拠点だ』 研究ノート#1306~#1386 ※何かの計算式や図案などが書き込まれているが、一部後から意図的に消された形跡が見られる 研究ノート#1387 『ようやく黒石を封印するための装置が完成した。これをメイヴと名付ける。次は研究データを保存する装置だ。しかし、既存の媒体ではいくらセキュリティを強固にしようとも、人が作ったものはいずれ必ず人の手で解読されてしまう。どうしたものか』 研究ノート#1388 『過去の黒石研究が今になって役立つとは皮肉なものだ。黒石はエネルギーを放出するだけでなく吸収することもできる。ならばデータを量子化して装置に送り込み、エネルギーとして変換して黒石に送り込むことで黒石研究の成果を黒石そのものに保管することが可能かもしれない。そうなれば結果として、黒石自体を護れば全てを護れるので合理的といえるだろう』 研究ノート#1389~#1438 ※計算式、図案、設計図など 研究ノート#1439 『非常に重大な見落としをしていた。ヴェルスタンドは精神研究に秀でている。ということは、いくら巧妙に研究データを隠したところで私の記憶を盗まれれば終わりだ。この問題を解決するにはどうしたものか。最終手段は容易に思いつくが、別の方法があるならそうしたい。だが念のため、私に代わってメイヴを護ってくれる機械を設計しておく』 研究ノート#1439~1452 ※計算式、図案、設計図。開発コード:Gendar 研究ノート#1453 『もう時間がない。結局最後の手段を用いるしかなくなった。おそらくもう、ここに記録を残すこともないだろう』 研究ノート#1454 『後をゲンダーに託す』 「これは…」 ゲンダーは複雑そうな表情で遠隔モニタに表示された情報に目を通した。 『ヘイヴの日記のようです。おや、ゲンダーの設計図もありますよ。これなら、いつぶっ壊れても直してあげられますね』 「すまん。今はちょっとおまえの冗談につきあうような気分じゃない」 『気分、と来ましたか。まあいいです、続けましょう。他にもいくつかファイルが見つかりましたが、展開するために専用のデバイスが必要になるようです。おそらくはヘイヴ独自の規格でしょう。今の時点で参照できる情報は以上になります』 まとめると、どうやらヘイヴは黒石というものを研究していたが、何らかの理由でそれを封印することになった。 そのために作られたのがメイヴで、研究データの保存媒体そのものが黒石でもあるというのだ。つまり、内側から順に研究データ、黒石、メイヴの三重構造だ。そしてさらにそのメイヴを護るための要素がゲンダーである。 ここまでしてヘイヴは研究を隠そうとした。彼の選んだ最終手段が何であるかは言うまでもない。 一体ここまでして護ろうとする研究とは何なのか。ヘイヴが研究していた黒石とは一体何なのか。 『後をゲンダーに託す』 その一文がゲンダーの心に深く突き刺さった。 (ヘイヴ。オレは最後まで信じてるからな。研究していたのが何ダろうが関係ない。オレは託されたんダ。それなら、その務めをしっかり果たしてみせる。それがオレの忠義ダ) 「切られたか…」 もう繋がっていない電話の受話器を耳に当てた姿勢のまま、ガイストはしばらく考え込んでいた。 あの男の本性はよく知っている。噂には聞いていた。これまでも自分の意にそぐわない者を次々と排除してきたのだと。 彼は決して証拠は残さない。しかし、大統領に反発した者は誰であれ、必ず行方不明になった。 「そうさ、誰もかも……かつては僕の尊敬する師匠さえも消された。そして、次は僕が消える番ってわけか」 さあ、一体どんな手段で来る。地下の装置を破壊した刺客が背後から襲いかかってくるか。それとも正面から軍隊をけしかけてくるか。それとも事故か何かを装ってこのドームにミサイルを放つかもしれない。 だがそう易々とやられるつもりはない。いつかこんな日が来るだろうと、かねてより用意していたものがある。 最初はドームの移転を考えていたが、莫大な費用がかかるので断念した。 次に光学迷彩の技術の応用でドームそのものを隠してみた。外部には防衛措置としてG-レティスとG-ブロウティスを配備した。これを維持するには膨大な電力が必要になるため、街全体の電力を落とす他なかった。 もともとここで暮らしていたのは研究者とその家族だけだ。皮肉にも大統領の策略のせいで、このドームの住人はほとんどいなくなっていたので、もはや電気が止まって困る者もほとんどいない。 ヴェルスタンドのヒュフテ地区にはかなりの数の研究施設がある。極秘の研究を行う施設も少なくないため、その所在地は地図には記されていない。ドームを隠すことで時間を稼いで、大統領に対抗するつもりだった。 それにもかかわらず今日。ついにこのドームの所在を見つけて侵入してくる存在をセンサーが検知した。 だからプランBだ。 6番ゲートで異常を感知したときに「ついに来たか」と思った。数少ない残りのスタッフたちはすでに避難させた。 あえてこちらから連絡することで、大統領には自分がまだこのドームに……ヴェルスタンド国内にいるという印象を植え付けた。 事前準備はこれでいい。 「あとはアレを使ってここから脱出するだけだ。さあガイスト、もう後戻りはできないぞ。気を引き締めていけ」 部屋を後にすると、もう誰もいないはずの最上階の通路を真っ直ぐエレベータへと進む。 窓の外には薄暗い灰色の街並みが見える。何者かの手によってこの建物の電力は復旧されたが、街の電力は依然として止まったまま。誰もいない街にはお似合いの静寂の色だ。 「たとえ合成映像だとわかっていても、ここから見える景色はいい眺めだった。灰色に染まってはそれも台無しだな」 そんな景色もこれで見納めだ。ここに戻ってくることも、もうおそらくはないだろう。 研究者としての地位も剥奪された。しかし、研究者の資格がなくても研究自体は行える。 この研究所の地下の隠し部屋に脱出ルートを確保してある。今はまず逃げて身を隠すことだ。具体的な対策はそれから練ろう。 あとは刺客に見つからずにここを出るだけだ。念のために護身用のスタンガンを持っている。 相手は何人だろうか。レティスとブロウティスを配備していたから、ある程度は撃退できたはずだと願いたい。それに地下の装置の部屋は狭いから、そう大勢が侵入できたはずはない。 通路を抜けてエレベータの前にたどり着いた。 「自分の身ぐらいは自分で護れるさ…」 周囲を警戒しながら、壁を背にエレベータのボタンを押す。 そこの角から誰か飛び出してくるのではないか。あるいは窓を割って飛び込んでくるか。 あらゆる襲撃を想定しながらエレベータの到着を待つ。 やがて電子音がエレベータの到着を知らせた。 「よし」 扉が開く音を背中で確認しながら、なおも周囲への警戒を緩めず一歩後退してエレベータに踏み入る。今のところ、人の気配は感じない。大丈夫だ、問題ない。 そのまま振り返って一階のボタンを押して扉を閉じる。そして脱出。あとはそれだけのはずだった。 振り返ったガイストはそれと目が合って驚いたが、先に叫び声をあげたのは相手のほうだった。 「なんダ、おまえは!?」 第5章 了 ブラックボックス6